package ventanas;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

import javax.swing.JInternalFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.table.DefaultTableModel;

import delegate.GestionCompras;

import servicio.ComprasService;
import javax.swing.JLabel;
import javax.swing.JTextArea;

public class FIPruebas extends JInternalFrame implements ActionListener {
	private JButton btnProcesar;
	ComprasService servicio = GestionCompras.getComprasService();
	private DefaultTableModel dtm;
	private JTable tbGenerico;
	private JScrollPane scpGenerico;
	int contador = 0;
	private JLabel lblContador;
	private JTextArea txtSql;
	
	public FIPruebas() {
		setBounds(0, 0, 622, 411);
		setVisible(true);
		getContentPane().setLayout(null);
		
		btnProcesar = new JButton("Procesar");
		btnProcesar.setBounds(453, 11, 143, 52);
		btnProcesar.addActionListener(this);
		getContentPane().add(btnProcesar);

		dtm = new DefaultTableModel();

		tbGenerico = new JTable(dtm);
		
		tbGenerico.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		scpGenerico = new JScrollPane(tbGenerico);
		scpGenerico.setBounds(10, 74, 586, 264);
		getContentPane().add(scpGenerico);
		
		lblContador = new JLabel("");
		lblContador.setBounds(10, 344, 378, 27);
		getContentPane().add(lblContador);
		
		txtSql = new JTextArea();
		txtSql.setBounds(10, 11, 433, 52);
		getContentPane().add(txtSql);
		
	}
	
	public JButton getPruebas(){
		return btnProcesar;
	}
	
	public String getSql(){
		return txtSql.getText().trim();
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		try {
			ResultSet rs = servicio.listadoGenerico(getSql());
			cargaTabla(rs);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	void cargaTabla(ResultSet rs) throws SQLException{
		 tbGenerico.setModel(dtm = new DefaultTableModel());
		//Obteniendo la informacion de las columnas que estan siendo consultadas
		 ResultSetMetaData rsMd = rs.getMetaData();
		 //La cantidad de columnas que tiene la consulta
		 int cantidadColumnas = rsMd.getColumnCount();
		 //Establecer como cabezeras el nombre de las colimnas
		 for (int i = 1; i <= cantidadColumnas; i++) {
		  dtm.addColumn(rsMd.getColumnLabel(i));
		 }
		 //Creando las filas para el JTable
		 contador = 0;
		 while (rs.next()) {
			 contador++;
		  Object[] fila = new Object[cantidadColumnas];
		  for (int i = 0; i < cantidadColumnas; i++) {
		    fila[i]=rs.getObject(i+1);
		  }
		  dtm.addRow(fila);
		 }
		 rs.close();
		 tbGenerico.setModel(dtm);
		 lblContador.setText("Total registros encontrados: "+contador);
	}
}
